﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KTXD.Data;
using KTXD.Entities;

namespace UserKTXD.DCTEDU_.DanhMuc
{
    public partial class QLNguoiDung : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Bind_Data();
            }
        }

        protected void Bind_Data()
        {
            try
            {
                TList<NguoiDung> Tlist_NguoiDung = DataRepository.NguoiDungProvider.GetAll();
                gridCatalog.DataSource = Tlist_NguoiDung;
                gridCatalog.DataBind();
            }
            catch (Exception)
            {
            }
        }

        protected void cmdSave_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                string TenTruyCap = Common.StandardString(txtTenTruyCap.Text);
                if (H_CatalogId.Value.Length == 0 && DataRepository.NguoiDungProvider.GetByTenTruyCap(TenTruyCap) != null)
                {
                    lblStatus.Text = "Tên truy cập đã tồn tại, xin vui lòng chọn tên khác!";
                    return;
                }
                NguoiDung entNguoiDung = new NguoiDung();
                entNguoiDung.Id = Convert.ToInt32(H_CatalogId.Value);
                entNguoiDung.HoTen = Common.StandardString(txtHoTen.Text);
                string MatKhau = Common.StandardString(txtMatKhau.Text);
                string MaTruyCap = TenTruyCap + MatKhau;
                entNguoiDung.TenTruyCap = TenTruyCap;
                entNguoiDung.MaTruyCap = Common.EncryptMD5(MaTruyCap);
                entNguoiDung.MatKhau = Common.EncryptMD5(MatKhau);
                entNguoiDung.NgayCapNhat = Common.GetServerDateTime();

                bool updateStatus = false;
                try
                {
                    if (entNguoiDung.Id == 0)
                    {
                        entNguoiDung.Id = 0;
                        updateStatus = DataRepository.NguoiDungProvider.Insert(entNguoiDung);
                    }
                    else
                    {
                        entNguoiDung.EntityState = EntityState.Changed;
                        updateStatus = DataRepository.NguoiDungProvider.Update(entNguoiDung);
                    }
                    if (!updateStatus)
                    {
                        WebMessage.Show("Cập nhật Người dùng không thành công");
                    }
                    else
                    {
                        H_CatalogId.Value = "0";
                        txtHoTen.Text = "";
                        txtMatKhau.Text = "";
                        txtTenTruyCap.Text = "";
                        Bind_Data();
                    }
                }
                catch (Exception)
                {
                    WebMessage.Show("Cập nhật Người dùng không thành công");
                }
            }
            catch (Exception)
            {
                WebMessage.Show("Cập nhật Người dùng không thành công");
            }
        }

        protected void cmdReset_Click(object sender, ImageClickEventArgs e)
        {
            H_CatalogId.Value = "0";
            txtHoTen.Text = "";
            txtMatKhau.Text = "";
            txtTenTruyCap.Text = "";
            lblStatus.Text = "";
        }

        protected void gridCatalog_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.backgroundColor='WhiteSmoke';";
                e.Row.Attributes["onmouseout"] = "this.style.backgroundColor='White';";

                LinkButton l = (LinkButton)e.Row.FindControl("cmdDelete");
                l.Attributes.Add("onclick", "javascript:return " + "confirm('Bạn chắc chắn muốn xóa thông tin này?');");
            }
        }

        protected void gridCatalog_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                try
                {
                    int IdNguoiDung = Convert.ToInt32(e.CommandArgument.ToString());
                    bool deleteStatus = DataRepository.NguoiDungProvider.Delete(IdNguoiDung);
                    if (!deleteStatus)
                    {
                        WebMessage.Show("Xóa Người dùng không thành công");
                    }
                    else
                    {
                        Bind_Data();
                        H_CatalogId.Value = "0";
                        txtHoTen.Text = "";
                        txtMatKhau.Text = "";
                        txtTenTruyCap.Text = "";
                    }
                }
                catch (Exception)
                {
                    WebMessage.Show("Xóa Người dùng không thành công");
                    return;
                }
            }
            if (e.CommandName == "Select")
            {
                try
                {
                    int IdNguoiDung = Convert.ToInt32(e.CommandArgument.ToString());
                    NguoiDung entNguoiDung = DataRepository.NguoiDungProvider.GetById(IdNguoiDung);
                    if (entNguoiDung != null)
                    {
                        H_CatalogId.Value = entNguoiDung.Id.ToString();
                        txtHoTen.Text = entNguoiDung.HoTen;
                        txtTenTruyCap.Text = entNguoiDung.TenTruyCap;
                    }
                }
                catch (Exception)
                {
                    return;
                }
            }
        }
    }
}